#ifndef STREET_H_
#define STREET_H_

#include "Element.hpp"
#include "glew.h"
#include "Logger.hpp"
#include "Random.hpp"
#include "TextureLibrary.hpp"
#include "ShaderLibrary.hpp"
#include "Shader.hpp"
#include <cassert>
#include <QtOpenGL>
#include <iostream>
#include <string>
#include <cassert>

class Random;
class Texture;
class Shader;

class Street : public Element
{
public:
	Street( );
	virtual ~Street() { }
	
	void draw();
	void drawSimple();
	void drawShadow();
	
	void generate( Random &r );
	void setPosition( float x, float y, float z );
	void setXAligned( bool aligned );
	
protected:
	int m_numLanes;
	bool m_x_aligned;
	float m_distance;
	float m_x;
	float m_y;
	float m_z;
	
	Texture* m_texture;
	Shader* m_shader;
};



#endif

